import axiosInstance from './axiosInstance';

/**
 * 获取成本项目列表（分页）
 * @param {Object} params - 查询参数
 * @param {string} params.itemName - 项目名称
 * @param {string} params.itemCode - 项目编码
 * @param {number} params.itemType - 项目类型
 * @param {number} params.status - 状态
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页条数
 * @returns {Promise} - 返回分页列表
 */
export const getCostItemList = (params) => {
    return axiosInstance.get('/costItem/list', { params });
};

/**
 * 获取成本项目详情
 * @param {number} id - 成本项目ID
 * @returns {Promise} - 返回项目详情
 */
export const getCostItemDetail = (id) => {
    return axiosInstance.get(`/costItem/${id}`);
};

/**
 * 新增成本项目
 * @param {Object} data - 成本项目数据
 * @param {string} data.itemCode - 成本项目编码
 * @param {string} data.itemName - 成本项目名称
 * @param {number} data.itemType - 成本类型
 * @param {number} data.parentId - 上级项目ID
 * @param {number} data.budgetCycle - 预算周期
 * @param {number} data.isLeaf - 是否末级项目
 * @param {number} data.status - 状态
 * @param {string} data.description - 项目描述
 * @param {number} data.sortOrder - 排序号
 * @returns {Promise} - 返回新增结果
 */
export const addCostItem = (data) => {
    return axiosInstance.post('/costItem', data);
};

/**
 * 更新成本项目
 * @param {number} id - 成本项目ID
 * @param {Object} data - 成本项目数据
 * @returns {Promise} - 返回更新结果
 */
export const updateCostItem = (id, data) => {
    return axiosInstance.put(`/costItem/${id}`, data);
};

/**
 * 删除成本项目
 * @param {number} id - 成本项目ID
 * @returns {Promise} - 返回删除结果
 */
export const deleteCostItem = (id) => {
    return axiosInstance.delete(`/costItem/${id}`);
};

/**
 * 获取成本项目树
 * @returns {Promise} - 返回项目树结构
 */
export const getCostItemTree = () => {
    return axiosInstance.get('/costItem/tree');
};